package gretha.panels;

import java.awt.BorderLayout;

import gretha.Jtables.JTableCohortesDuMassif;
import gretha.donnees.CohorteDuMassif;
import gretha.donnees.Massif;
import gretha.modelsDeJTable.CohortesDuMassifTableModel;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.border.EmptyBorder;

public class PanelListeCohortes extends JPanel {

	private static final long serialVersionUID = 1L;
	private CreationScenario parent;
	private JScrollPane scrollTableMassif;
	private JTableCohortesDuMassif tableMassif;

	public PanelListeCohortes(CreationScenario panel) {
		parent = panel;
		setBorder(new EmptyBorder(10, 10, 10, 10));
		setLayout(new BorderLayout());
		add(new JLabel("Liste des cohortes"), BorderLayout.NORTH);

		/*
		 * On créé la JTable et le JScrollPane
		 */
		if (PanelListeMassifs.getListeMassifs() != null
				&& PanelListeMassifs.getListeMassifs().getModel().getSize() > 0) {
			Massif massifTemporaire = new Massif();
			massifTemporaire.recupererDonnees(PanelListeMassifs
					.getIdDesMassifs()[PanelListeMassifs.getListeMassifs()
					.getSelectedIndex()][0]);

			parent.getListeDesMassifsDuScenario().add(massifTemporaire);
			parent.setListeMassifsTableau(new Massif[parent
					.getListeDesMassifsDuScenario().size()]);

			/*
			 * On récupère les données du massif
			 */
			CohorteDuMassif[] tmpDonnees = new CohorteDuMassif[massifTemporaire.getCohortes().size()];
			int i = 0;
			for (CohorteDuMassif cm : massifTemporaire.getCohortes()) {
				tmpDonnees[i] = cm;
				i++;
			}
			parent.setDonnees(tmpDonnees);
			tableMassif = new JTableCohortesDuMassif(
					new CohortesDuMassifTableModel(parent.getDonnees()));
			scrollTableMassif = new JScrollPane(tableMassif);
			add(scrollTableMassif);
		} else {
			tableMassif = new JTableCohortesDuMassif(
					new CohortesDuMassifTableModel(null));
			scrollTableMassif = new JScrollPane();
			removeAll();
			rafraichir();
		}

	}

	public void rafraichir() {
		if (PanelListeMassifs.getListeMassifs() == null) {
			tableMassif = new JTableCohortesDuMassif(
					new CohortesDuMassifTableModel(null));
			scrollTableMassif = new JScrollPane();
			removeAll();
		} else {
			if (PanelListeMassifs.getListeMassifs().getModel().getSize() == 0) {
				tableMassif = new JTableCohortesDuMassif(
						new CohortesDuMassifTableModel(null));
				scrollTableMassif = new JScrollPane();
				removeAll();
			}
		}
		tableMassif.revalidate();
		tableMassif.repaint();
		scrollTableMassif.revalidate();
		scrollTableMassif.repaint();

	}
}
